package com.hulk.dryad.persistence.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.hulk.dryad.common.annotation.Sensitive;
import com.hulk.dryad.common.jackson.sensitive.SensitiveTypeEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * 数据源表
 *
 * @author kim
 * @date 2019-03-31 16:00:20
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("t_gen_datasource_conf")
public class GenDatasourceConfModel extends SuperEntity<GenDatasourceConfModel> {

	private static final long serialVersionUID = 1L;

	/**
	 * 主键
	 */
	@TableId(value = "id", type = IdType.AUTO)
	private Integer id;

	/**
	 * 名称
	 */
	private String name;

	/**
	 * 数据库类型
	 */
	private String dsType;

	/**
	 * 配置类型 （0 主机形式 | 1 url形式）
	 */
	private Integer confType;

	/**
	 * 主机地址
	 */
	private String host;

	/**
	 * 端口
	 */
	private Integer port;

	/**
	 * jdbc-url
	 */
	private String url;

	/**
	 * 实例
	 */
	private String instance;

	/**
	 * 数据库名称
	 */
	private String dsName;

	/**
	 * 用户名
	 */
	private String username;

	/**
	 * 密码
	 */
	@Sensitive(type = SensitiveTypeEnum.PASSWORD)
	@ToString.Exclude
	private String password;


	@TableField(value = "created_time", fill = FieldFill.INSERT)
	private LocalDateTime createdTime;

	@TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE)
	private LocalDateTime updatedTime;

	/**
	 * 删除标记
	 */
	@TableLogic
	private String delFlag;

	/**
	 * 租户ID
	 */
	private String tenantId;

}
